import request from './request'

// 获取健康记录列表（用户端）
export function getHealthList(params) {
  const requestParams = {
    page: params.page || 1,
    size: params.size || 10
  }
  
  // 只在有值时添加可选参数
  if (params.petId) requestParams.petId = params.petId
  if (params.petName) requestParams.petName = params.petName
  if (params.status) requestParams.status = params.status
  
  return request({
    url: '/pet-health/list',
    method: 'get',
    params: requestParams
  })
}

/**
 * 管理员查询宠物健康检测记录列表（支持动态查询）
 * @param {Object} params
 * @param {number} params.pageNum - 页码，默认1
 * @param {number} params.pageSize - 每页大小，默认10
 * @param {number} params.petId - 宠物ID
 * @param {string} params.petName - 宠物名称（模糊查询）
 * @param {string} params.checkType - 检测类型（模糊查询）
 * @param {number} params.healthStatus - 健康状态（1=正常，2=异常，3=待观察）
 * @param {number} params.doctorId - 检测医生ID
 * @param {string} params.doctorName - 医生姓名（模糊查询）
 * @param {string} params.startDate - 检测开始日期
 * @param {string} params.endDate - 检测结束日期
 * @param {number} params.minWeight - 最小体重(kg)
 * @param {number} params.maxWeight - 最大体重(kg)
 * @param {number} params.minTemperature - 最低体温(°C)
 * @param {number} params.maxTemperature - 最高体温(°C)
 * @param {number} params.minHeartRate - 最低心率(次/分)
 * @param {number} params.maxHeartRate - 最高心率(次/分)
 * @param {string} params.orderBy - 排序字段（checkDate/temperature/weight）
 * @param {string} params.order - 排序方向（asc/desc）
 * @returns {Promise}
 */
export function getAdminHealthList(params) {
  return request({
    url: '/pet-health/admin/list',
    method: 'get',
    params
  })
}

// 获取健康记录详情
export function getHealthDetail(id) {
  return request({
    url: `/pet-health/detail/${id}`,
    method: 'get'
  })
}

// 添加健康记录
export function addHealth(data) {
  return request({
    url: '/pet-health/create',
    method: 'post',
    data
  })
}

// 更新健康记录
export function updateHealth(id, data) {
  return request({
    url: `/pet-health/update/${id}`,
    method: 'put',
    data
  })
}

// 删除健康记录
export function deleteHealth(id) {
  return request({
    url: `/pet-health/delete/${id}`,
    method: 'delete'
  })
}

// 获取宠物健康记录（用户端）
export function getHealthRecords(params) {
  return request({
    url: '/pet-health/list',
    method: 'get',
    params
  })
}

// 获取健康记录详情（用户端）
export function getHealthRecordDetail(id) {
  return request({
    url: `/pet-health/detail/${id}`,
    method: 'get'
  })
}

export default {
  getHealthList,
  getHealthDetail,
  addHealth,
  updateHealth,
  deleteHealth,
  getHealthRecords,
  getHealthRecordDetail,
  getAdminHealthList
}
